1. Field of the Invention
The invention relates generally to Serial Attached SCSI (SAS) domains and more specifically relates to enhanced SAS expanders.
2. Discussion of Related Art
In SAS domains (i.e., electronic systems implementing a switched SAS fabric), it is common for a Redundant Array of Independent Disks (RAID) controller to manage a large number of RAID logical volumes. RAID volumes offer benefits over other logical volumes because RAID volumes may provide striped data for enhanced performance, and also may provide redundancy information for the data to enhance reliability.
SAS storage devices that provision RAID logical volumes may be coupled for communication with the RAID controller via one or more SAS expanders. The SAS expanders route commands from the RAID controller to the appropriate storage devices.
There are many different levels of RAID that may be implemented by a RAID controller for a volume. For example, a volume may be a RAID 1 volume, and therefore may mirror data in order to enhance redundancy. In another example, a volume may be a RAID 0 volume, which exhibits striping but no redundancy. RAID 5 and 6 both exhibit striping as well as redundancy. A RAID volume may be configured by a controller to exhibit multiple RAID levels at once. For example, a RAID volume may be defined by a RAID controller as a RAID 10 volume (indicating the combination of RAID 1 mirroring and RAID 0 striping), may be defined by a RAID controller as a RAID 51 volume (indicating the combination of RAID 5 striping, RAID 5 redundancy information, and RAID 1 mirroring), etc.
More complex levels of RAID tend to exhibit greater advantages in terms of latency, throughput, and redundancy, which is greatly desirable to an end user. However, the more complex levels of RAID also require greater levels of processing overhead when they are managed, checked for consistency, rebuilt, and generally maintained. In complex SAS topologies where a single RAID controller manages multiple RAID volumes (e.g., tens of volumes) connected across a switched fabric of expanders, the overhead requirements of the various RAID volumes may result in a large queue of maintenance tasks that inhibit the overall processing of host Input and/or Output (I/O) commands. Thus, even though the RAID volumes themselves can provide data quickly and store it redundantly, host I/O processing remains slow because the RAID controller cannot handle the increased workload involved in managing the various RAID volumes.
Thus, it is an ongoing challenge to provide RAID volumes that exhibit enhanced performance characteristics without overloading the processing capabilities of the RAID controllers that manage those volumes.